package br.com.tcf.dao;

import java.util.List;

import br.com.tcf.Conexao.Connection;
import br.com.tcf.Conexao.DaoResource;
import br.com.tcf.entidades.Cardapio;
import br.com.tcf.entidades.Produto;

public class ProdutoDao extends DaoResource{
	private static Connection connection = new Connection();
	private List<Produto> produtos;

	public void gravar(Produto produto){
		super.saveOrUpdate(connection, produto);
	}

	public void excluir(Produto produto){
		super.delete(connection, produto);
	}

	@SuppressWarnings("unchecked")
	public List<Produto> listar_produto_por_empresa(Cardapio cardapio){		
		produtos = super.select(connection, "SELECT p FROM Produto p WHERE p.cardapio = :id and p.sn_ativo = 1", "id", cardapio);
		return produtos;
	}
	@SuppressWarnings("unchecked")
	public List<Produto> listar_todos_produto_por_empresa(Cardapio cardapio){		
		produtos = super.select(connection, "SELECT DISTINCT p FROM Produto p LEFT JOIN FETCH p.detalhes WHERE p.cardapio = :id", "id", cardapio);
		return produtos;
	}
	
	@SuppressWarnings("unchecked")
	public List<Produto> listarProdutos(){		
		produtos = super.select(connection, "FROM Produto");
		return produtos;
	}

	@SuppressWarnings("unchecked")
	public List<Produto> listar_produto_por_id(Produto produto){
		produtos = super.select(connection, "SELECT p FROM Produto p where p = :produto", "produto", produto);
		return produtos;
	}
	
	@SuppressWarnings("unchecked")
	public List<Produto> listar_produto_inativo(Cardapio cardapio){
		produtos = super.select(connection, "SELECT p FROM Produto p WHERE p.cardapio = :id and p.sn_ativo = 0", "id", cardapio);
		return produtos;
	}
}
